package com.zpark.se.collection.collections;

import java.util.*;

/**
 * Collections工具类常用方法01
 */
public class Demo01 {
    public static void main(String[] args) {
        // 以list集合为例
        // 创建list集合
        List<Integer> lt = new ArrayList<>();
        // 添加元素
        lt.add(7);
        lt.add(16);
        lt.add(2);
        lt.add(3);
        lt.add(78);
        System.out.println("排序前：" + lt);

        /*
            sort(List<T> list)：将集合中的元素按照默认规则进行排序，默认规则是升序。
         */
        Collections.sort(lt);
        System.out.println("排序后：" + lt);

        /*
            reverseOrder()：将集合中的元素按照指定规则进行排序
         */
        Collections.sort(lt, (o1, o2) -> o2-o1);
        System.out.println(lt);

        /*
            swap(List<T> list, int i, int j)：交换集合中指定位置的元素
         */
        Collections.swap(lt, 0, 3);
        System.out.println(lt);

        /*
            addAll(Collection<T> c, T... elements)：将指定的元素添加到集合中
         */
        boolean b = Collections.addAll(lt, 1, 2, 3, 4, 5);
        System.out.println(lt);

        /*
            binarySearch(List<T> list, T key)：对集合进行二分查找，
            要求集合必须是有序的，否则结果不可预知
         */
        int i = Collections.binarySearch(lt, 2);

        /*
            copy(List<T> dest, List<? extends T> src)：将src中的内容复制到dest中
         */
        // Collections.copy();

        /*
            disjoint(Collection<T> c1, Collection<T> c2)：判断两个集合是否没有交集
         */
        // Collections.disjoint()

        /*
            emptyList()：返回一个空的集合，不能添加元素
         */
        List<Object> objects = Collections.emptyList();

        /*
        emptyMap()：返回一个空的集合，不能添加元素
         */
        Map<Object, Object> objectObjectMap = Collections.emptyMap();

        /*
            fill(List<T> list, T obj)：使用指定的元素替换指定集合中的所有元素
         */
        Collections.fill(lt, 100);
        System.out.println(lt);

        /*
            synchronizedSet(Set<T> s)：返回一个线程安全的集合
         */
        Set<Object> objects1 = Collections.synchronizedSet(new HashSet<>());
    }
}
